package structure.heap.basic;

/**
 * 任意结点的值总是大于或者小于子结点的值
 * 堆中的元素必须具备可比较性
 * @param <E>
 */
public interface MyHeap<E> {
    int size();    // 元素的数量

    boolean isEmpty();    // 是否为空

    void clear();    // 清空

    void add(E element);     // 添加元素

    E get();    // 获得堆顶元素

    E remove(); // 删除堆顶元素

    E replace(E element); // 删除堆顶元素的同时插入一个新元素
}
